A video delivery service includes a large library of videos that can be delivered to a large number of users. The video delivery service may not offer every video in the library of videos to all users. For example, the video delivery service may have authorization packages that include different videos. The videos that are available to a user depends on which authorization packages a user's account has access to. For example, a user may subscribe to a television channel authorization package to receive the television shows for that television channel. However, a second user may not subscribe to that television channel authorization package and should not receive those television shows. Accordingly, each specific user may have access to different videos.
The above example is only one simple combination. In operation, the video delivery service may have a large number authorization packages, which means there are an even larger number of possible combinations. To quickly determine which shows or videos a user has access to, the video delivery service may generate every single possible combination. Then, an exact match for a user may be found that indicates which videos the user can access. This is the fastest way to determine which videos a user can access. However, when adding a new package, the number of possible combinations doubles leading to more required storage space. Further, the time that it takes to generate every single possible package combination to take into account the new package gets longer and longer as the number of packages increases.